package com.crw.study.chain.example2;

/**
 * 总经理处理请求
 */
public class GeneralManagerHandler extends AbstractHandler {

    @Override
    public String handleRequest(FeeRequest feeRequest) {
        String str = "";
        //总经理的权限很大，只要请求到了这里，他都可以处理
        if (feeRequest.getFee() >= 1000) {
            //为了测试，简单点，只同意张三的请求
            if ("张三".equals(feeRequest.getUserName())) {
                str = "成功：总经理同意【" + feeRequest.getUserName() + "】的聚餐费用，金额为" + feeRequest.getFee() + "元";
            } else {
                //其他人一律不同意
                str = "失败：总经理不同意【" + feeRequest.getUserName() + "】的聚餐费用，金额为" + feeRequest.getFee() + "元";
            }
        } else {
            //如果还有后继的处理对象，继续传递
            if (getSuccessor() != null) {
                return getSuccessor().handleRequest(feeRequest);
            }
        }
        return str;
    }
}

